<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>展开运算符</title>
</head>
<body>
<script>
    /*
        ES6 的展开运算符
          => ...+数组或对象
          => 作用：展开数组的[] 或 对象的{}
     */

    //展开数组
    console.log(100, 200, 300, 400)
    let arr = [100, 200, 300, 400]
    console.log(arr)  //输出一个数组[100,200,300,400]
    console.log(...arr)  // 展开后 = console.log(100,200,300,400)；输出的都是100，200，300，400

    //作用1. 合并数组
    let arr1 = [1, 2, 3, 4]
    let arr2 = [5, 6, 7]
    let arr3 = [8, 9]
    let arr4 = [...arr1, ...arr2, ...arr3]
    console.log(arr4)
    console.log(arr1)

    arr1.push(...arr2, ...arr3)
    console.log(arr1)

    //作用2. 向函数传递参数
    let arr5 = [1, 4, 7, 36, 15, 25, 49]
    let max = Math.max(...arr5)
    console.log(max)

    //展开对象
    let obj = {name: '最爱吃兽奶', age: 18}
    console.log(obj)

    //作用1. 复制对象
    // 有相同成员时，要注意展开书写的顺序，否则会覆盖需要的值
    let obj2 = {
        ID: 1,
        ...obj
    }
    console.log(obj2)
</script>
</body>
</html>